[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
exec(LIST)
exec LIST
If there is more than one argument in LIST, or if
LIST is an array with more than one value, calls
execvp() with the arguments in LIST. If there is
only one scalar argument, the argument is checked
for shell metacharacters. If there are any, the
entire argument is passed to "/bin/sh -c" for pars-
ing. If there are none, the argument is split into
words and passed directly to execvp(), which is more
efficient. Note: exec (and system) do not flush
your output buffer, so you may need to set $| to
avoid lost output. Examples:
exec '/bin/echo', 'Your arguments are: ', @ARGV;
exec "sort $outfile | uniq";
If you don't really want to execute the first argu-
ment, but want to lie to the program you are execut-
ing about its own name, you can specify the program
you actually want to run by assigning that to a
variable and putting the name of the variable in
front of the LIST without a comma. (This always
forces interpretation of the LIST as a multi-valued
list, even if there is only a single scalar in the
list.) Example:
$shell = '/bin/csh';
exec $shell '-sh'; # pretend it's a login shell
The MS-DOS implementation of exec has problems.
Unlike system and pipes it is not MKS toolkit compa-
tible. As of this writing (September 1991) it will
not even allow for temporary file cleanup. The use
of exec on MS-DOS is strongly discouraged.
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson